#include "audio.h"
#include "sdl_sound_player.h"

Lecteur lecteur;

void startSound(Source * aSource) {
    // Charge la lecture pour la source passée en paramètre.
    creerLecture(aSource, STATUT_PLAY, LIBERE_ALAFIN, FAUX, 1, 1, 0.5);

    // Lancement de la restitution
    restitution(&lecteur);
}

void freeSoundPlayer() {
    closeLecteur(&lecteur);
    SDL_Quit();
}

int loadPacSounds() {

    // Initialisation de SDL
    if (SDL_Init(SDL_INIT_AUDIO) < 0) {
        printf("Erreur d'initialisation de SDL : %s\n", SDL_GetError());
        return -1;
    }

    // Initialisation du lecteur
    printf("Initialisation du lecteur\n");
    initLecteur(&lecteur, FREQUENCE, FORMAT, NBCANAUX, AUDIOBUFF);

    // Initialisation des sources;
    printf("Initialisation des sources\n");

    initSource(&START_SOUND_DATA, &lecteur, "Sons/Pac Man Start.wav");
    initSource(&PACGUM_EATEN_SOUND_DATA, &lecteur, "Sons/Pac Man PacGum.wav");
    initSource(&POWERBALL_EATEN_SOUND_DATA, &lecteur, "Sons/Pac Man PowerBall.wav");
    initSource(&PACMAN_EATEN_SOUND_DATA, &lecteur, "Sons/Pac Man Dies.wav");
    initSource(&ENDOFPOWER_SOUND_DATA, &lecteur, "Sons/Pac Man EndOfPower.wav");
    initSource(&GAMEOVER_SOUND_DATA, &lecteur, "Sons/Evil.wav");
    initSource(&GAMEWIN_SOUND_DATA, &lecteur, "Sons/Pac Man GameWin.wav");
    initSource(&EXTRA_LIFE_SOUND_DATA, &lecteur, "Sons/Angel.wav");
    initSource(&VORTEX_SOUND_DATA, &lecteur, "Sons/Vortex.wav");
    initSource(&GHOST_EATEN_SOUND_DATA, &lecteur, "Sons/Pac Man Ghost Eat.wav");
    printLecteur(&lecteur);

    // Ecriture des informations de pistes
    printSource(&START_SOUND_DATA);
    printSource(&PACGUM_EATEN_SOUND_DATA);
    printSource(&POWERBALL_EATEN_SOUND_DATA);
    printSource(&PACMAN_EATEN_SOUND_DATA);
    printSource(&ENDOFPOWER_SOUND_DATA);
    printSource(&GAMEOVER_SOUND_DATA);
    printSource(&GAMEWIN_SOUND_DATA);
    printSource(&EXTRA_LIFE_SOUND_DATA);
    printSource(&VORTEX_SOUND_DATA);
    printSource(&GHOST_EATEN_SOUND_DATA);

    SDL_PauseAudio(0);
    printf("Module de son initialisé avec succès!\n");

    return 0;
}